package com.ruoyi.coupons.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 优惠券对象 jy_coupons
 *
 * @author ruoyi
 * @date 2021-11-24
 */
@ApiModel
public class Coupons extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @ApiModelProperty(value = "${comment}")
    private Long id;

    /** 名称 */
    @Excel(name = "名称")
    @ApiModelProperty(value = "名称")
    private String couponName;

    /** 优惠券金额 */
    @Excel(name = "优惠券金额")
    @ApiModelProperty(value = "优惠券金额")
    private BigDecimal money;

    /** 满多少元可用 */
    @Excel(name = "满多少元可用")
    @ApiModelProperty(value = "满多少元可用")
    private BigDecimal minPrice;

    /** 是否限量 */
    @Excel(name = "是否限量")
    @ApiModelProperty(value = "是否限量")
    private String limitedState;

    /** 限量数 */
    @Excel(name = "限量数")
    @ApiModelProperty(value = "限量数")
    private Long total;

    /** 剩余数量 */
    @Excel(name = "剩余数量")
    @ApiModelProperty(value = "剩余数量")
    private Long lastTotal;

    /** 归属 平台/门店 */
    @Excel(name = "归属 平台/门店")
    @ApiModelProperty(value = "归属 平台/门店")
    private String belongType;

    /** 所属门店id */
    @Excel(name = "所属门店id")
    @ApiModelProperty(value = "所属门店id")
    private Long storeId;

    /** 是否新人券 */
    @Excel(name = "是否新人券")
    @ApiModelProperty(value = "是否新人券")
    private String newUserState;

    /** 优惠券类型 */
    @Excel(name = "优惠券类型")
    @ApiModelProperty(value = "优惠券类型")
    private String couponType;

    /** 关联的分类/商品id */
    @Excel(name = "关联的分类/商品id")
    @ApiModelProperty(value = "关联的分类/商品id")
    private String primaryKey;

    /** 可领取开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可领取开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "可领取开始时间")
    private Date receiveStartTime;

    /** 可领取结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可领取结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "可领取结束时间")
    private Date receiveEndTime;

    /** 是否固定有效期 */
    @Excel(name = "是否固定有效期")
    @ApiModelProperty(value = "是否固定有效期")
    private String fixedTimeState;

    /** 可使用开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "可使用开始时间")
    private Date useStartTime;

    /** 可使用结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "可使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "可使用结束时间")
    private Date useEndTime;

    /** 有效期天数 */
    @Excel(name = "有效期天数")
    @ApiModelProperty(value = "有效期天数")
    private Long validDay;

    /** 排序 */
    @Excel(name = "排序")
    @ApiModelProperty(value = "排序")
    private Long sort;

    /** 启用状态 */
    @Excel(name = "启用状态")
    @ApiModelProperty(value = "启用状态")
    private String state;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setCouponName(String couponName) {
        this.couponName = couponName;
    }

    public String getCouponName() {
        return couponName;
    }

    public void setMoney(BigDecimal money)
    {
        this.money = money;
    }

    public BigDecimal getMoney()
    {
        return money;
    }
    public void setMinPrice(BigDecimal minPrice)
    {
        this.minPrice = minPrice;
    }

    public BigDecimal getMinPrice()
    {
        return minPrice;
    }
    public void setLimitedState(String limitedState)
    {
        this.limitedState = limitedState;
    }

    public String getLimitedState()
    {
        return limitedState;
    }
    public void setTotal(Long total)
    {
        this.total = total;
    }

    public Long getTotal()
    {
        return total;
    }
    public void setLastTotal(Long lastTotal)
    {
        this.lastTotal = lastTotal;
    }

    public Long getLastTotal()
    {
        return lastTotal;
    }
    public void setBelongType(String belongType)
    {
        this.belongType = belongType;
    }

    public String getBelongType()
    {
        return belongType;
    }
    public void setStoreId(Long storeId)
    {
        this.storeId = storeId;
    }

    public Long getStoreId()
    {
        return storeId;
    }
    public void setNewUserState(String newUserState)
    {
        this.newUserState = newUserState;
    }

    public String getNewUserState()
    {
        return newUserState;
    }
    public void setCouponType(String couponType)
    {
        this.couponType = couponType;
    }

    public String getCouponType()
    {
        return couponType;
    }
    public void setPrimaryKey(String primaryKey)
    {
        this.primaryKey = primaryKey;
    }

    public String getPrimaryKey()
    {
        return primaryKey;
    }
    public void setReceiveStartTime(Date receiveStartTime)
    {
        this.receiveStartTime = receiveStartTime;
    }

    public Date getReceiveStartTime()
    {
        return receiveStartTime;
    }
    public void setReceiveEndTime(Date receiveEndTime)
    {
        this.receiveEndTime = receiveEndTime;
    }

    public Date getReceiveEndTime()
    {
        return receiveEndTime;
    }
    public void setFixedTimeState(String fixedTimeState)
    {
        this.fixedTimeState = fixedTimeState;
    }

    public String getFixedTimeState()
    {
        return fixedTimeState;
    }
    public void setUseStartTime(Date useStartTime)
    {
        this.useStartTime = useStartTime;
    }

    public Date getUseStartTime()
    {
        return useStartTime;
    }
    public void setUseEndTime(Date useEndTime)
    {
        this.useEndTime = useEndTime;
    }

    public Date getUseEndTime()
    {
        return useEndTime;
    }
    public void setValidDay(Long validDay)
    {
        this.validDay = validDay;
    }

    public Long getValidDay()
    {
        return validDay;
    }
    public void setSort(Long sort)
    {
        this.sort = sort;
    }

    public Long getSort()
    {
        return sort;
    }
    public void setState(String state)
    {
        this.state = state;
    }

    public String getState()
    {
        return state;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("couponName", getCouponName())
            .append("money", getMoney())
            .append("minPrice", getMinPrice())
            .append("limitedState", getLimitedState())
            .append("total", getTotal())
            .append("lastTotal", getLastTotal())
            .append("belongType", getBelongType())
            .append("storeId", getStoreId())
            .append("newUserState", getNewUserState())
            .append("couponType", getCouponType())
            .append("primaryKey", getPrimaryKey())
            .append("receiveStartTime", getReceiveStartTime())
            .append("receiveEndTime", getReceiveEndTime())
            .append("fixedTimeState", getFixedTimeState())
            .append("useStartTime", getUseStartTime())
            .append("useEndTime", getUseEndTime())
            .append("validDay", getValidDay())
            .append("sort", getSort())
            .append("state", getState())
            .append("delState", getDelState())
            .append("delUser", getDelUser())
            .append("delType", getDelType())
            .append("delTime", getDelTime())
            .append("createBy", getCreateBy())
            .append("createType", getCreateType())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateType", getUpdateType())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
